﻿package mortal.game.view.signUp.sevenDayLogin.data
{
    import Message.Public.*;
    import com.mui.utils.*;
    import flash.display.*;
    import flash.utils.*;
    import mortal.common.swfPlayer.*;
    import mortal.common.swfPlayer.data.*;
    import mortal.game.cache.*;
    import mortal.game.manager.*;
    import mortal.game.resource.*;
    import mortal.game.resource.info.item.*;
    import mortal.game.utils.*;
    import mortal.game.view.signUp.lineOn.data.*;

    public class SevenDayLoginUtil extends Object
    {
        private static var btnDic:Dictionary = new Dictionary();

        public function SevenDayLoginUtil()
        {
            return;
        }// end function

        public static function getBtnStausArr() : Array
        {
            var _loc_1:Array = [];
            return _loc_1;
        }// end function

        public static function getShowRewardsByIndex() : Array
        {
            var _loc_3:int = 0;
            var _loc_4:Array = null;
            var _loc_1:Array = [];
            var _loc_2:int = 1;
            while (_loc_2 <= 7)
            {
                
                _loc_3 = getCodeByDay(_loc_2);
                _loc_4 = getSplayItemArrByCode(_loc_3, true);
                _loc_1.push(_loc_4);
                _loc_2++;
            }
            return _loc_1;
        }// end function

        public static function getCodeByDay(param1:int) : int
        {
            var _loc_2:* = getNameStr(param1);
            var _loc_3:* = ConstConfig.instance.getValueByName(_loc_2);
            return _loc_3;
        }// end function

        public static function getOneDayRewardsArr(param1:int) : Array
        {
            var _loc_2:* = getCodeByDay(param1);
            var _loc_3:* = getSplayItemArrByCode(_loc_2, true);
            return _loc_3;
        }// end function

        public static function getFitCareerObj(param1:int) : ItemData
        {
            var _loc_4:SPlayerItem = null;
            var _loc_5:ItemData = null;
            var _loc_2:* = getOneDayRewardsArr(param1);
            var _loc_3:int = 0;
            while (_loc_3 < _loc_2.length)
            {
                
                _loc_4 = _loc_2[_loc_3];
                _loc_5 = new ItemData(_loc_2[_loc_3], true);
                if (ItemsUtil.isFitCarrer(_loc_5))
                {
                    return _loc_5;
                }
                _loc_3++;
            }
            return null;
        }// end function

        public static function getSplayItemArrByCode(param1:int, param2:Boolean = true) : Array
        {
            var _loc_7:SPlayerItem = null;
            var _loc_3:Array = [];
            var _loc_4:* = ItemConfig.instance.getConfig(param1) as ItemGiftBagInfo;
            if (_loc_4.itemList1 == null)
            {
                return _loc_3;
            }
            var _loc_5:* = LineOnRewardConfig.getItemArrayByStr(_loc_4.itemList1);
            var _loc_6:int = 0;
            while (_loc_6 < _loc_5.length)
            {
                
                _loc_7 = new SPlayerItem();
                if (param2)
                {
                    _loc_7.itemCode = _loc_5[_loc_6][1];
                    _loc_7.itemAmount = _loc_5[_loc_6][2];
                }
                else
                {
                    _loc_7.itemCode = _loc_5[_loc_6][0];
                    _loc_7.itemAmount = _loc_5[_loc_6][1];
                }
                _loc_3.push(_loc_7);
                _loc_6++;
            }
            return _loc_3;
        }// end function

        private static function getNameStr(param1:int) : String
        {
            var _loc_2:String = "";
            switch(param1)
            {
                case 1:
                {
                    _loc_2 = "st";
                    break;
                }
                case 2:
                {
                    _loc_2 = "nd";
                    break;
                }
                case 3:
                {
                    _loc_2 = "rd";
                    break;
                }
                default:
                {
                    _loc_2 = "th";
                    break;
                }
            }
            return "T7DaysReward" + param1 + _loc_2 + "GiftCode";
        }// end function

        public static function showGuideArrow(param1:DisplayObject, param2:Boolean, param3:DisplayObjectContainer = null) : void
        {
            if (param2)
            {
                SevenDayLoginUtil.genGiftArrow(param1, -10, 21, 2, param3);
            }
            else
            {
                SevenDayLoginUtil.removeArrow(param1);
            }
            return;
        }// end function

        public static function genGiftArrow(param1:DisplayObject, param2:int = 0, param3:int = 0, param4:int = 2, param5:DisplayObjectContainer = null) : SWFPlayer
        {
            if (param1 == null)
            {
                return null;
            }
            var _loc_6:* = btnDic[param1];
            if (!_loc_6)
            {
                _loc_6 = UICompomentPool.getUICompoment(SWFPlayer) as SWFPlayer;
                btnDic[param1] = _loc_6;
            }
            else
            {
                return _loc_6;
            }
            _loc_6.timeRate = param4;
            _loc_6.load("guideArrow.swf", ModelType.NormalSwf, null);
            _loc_6.move(param1.x + param2, param1.y + param3);
            _loc_6.play();
            if (param5)
            {
                param5.addChild(_loc_6);
            }
            EffectManager.glowFilterReg(param1);
            return _loc_6;
        }// end function

        public static function removeArrow(param1:DisplayObject) : void
        {
            if (param1 == null)
            {
                return;
            }
            var _loc_2:* = btnDic[param1];
            if (_loc_2)
            {
                btnDic[param1] = null;
                delete btnDic[param1];
                _loc_2.dispose();
                _loc_2 = null;
            }
            EffectManager.glowFilterUnReg(param1);
            return;
        }// end function

        public static function isInSevenDay() : Boolean
        {
            var _loc_1:* = ClockManager.instance.getLoginDayNumByPassZero();
            if (_loc_1 > 7)
            {
                return false;
            }
            return true;
        }// end function

        public static function hasGotAllGift() : Boolean
        {
            var _loc_2:String = null;
            var _loc_3:int = 0;
            var _loc_4:Object = null;
            var _loc_1:* = Cache.instance.sevenDayLogin.rewardInfo.giftInfos;
            for (_loc_2 in _loc_1)
            {
                
                _loc_3 = parseInt(_loc_2);
                _loc_4 = _loc_1[_loc_3];
                if (ESevenDayStatus.hasGet != int(_loc_4))
                {
                    return false;
                }
            }
            return true;
        }// end function

        public static function hasSevenDayReward() : Boolean
        {
            var _loc_2:int = 0;
            var _loc_1:Boolean = false;
            if (Cache.instance.sevenDayLogin == null || Cache.instance.sevenDayLogin.rewardInfo == null)
            {
                return false;
            }
            for each (_loc_2 in Cache.instance.sevenDayLogin.rewardInfo.giftInfos)
            {
                
                if (ESevenDayStatus.canGet == _loc_2)
                {
                    _loc_1 = true;
                    break;
                }
            }
            return _loc_1;
        }// end function

        public static function hasNextDayIcon() : Boolean
        {
            var _loc_1:* = ClockManager.instance.getLoginDayNumByPassZero();
            var _loc_2:* = Cache.instance.role.entityInfo.level;
            var _loc_3:* = GameDefConfig.instance.getSystemOpenLevel(41);
            if (_loc_2 < _loc_3)
            {
                return false;
            }
            if (_loc_1 == 1)
            {
                if (hasGetRewardByDay(1))
                {
                    return true;
                }
                return false;
            }
            return false;
        }// end function

        public static function getTipIconShowRewardDay() : int
        {
            var _loc_1:* = ClockManager.instance.getLoginDayNumByPassZero();
            var _loc_2:* = _loc_1 + 1;
            if (_loc_2 >= 2 && _loc_2 <= 7)
            {
                return _loc_2;
            }
            return -1;
        }// end function

        public static function hasGetRewardByDay(param1:int) : Boolean
        {
            if (Cache.instance.sevenDayLogin == null || Cache.instance.sevenDayLogin.rewardInfo == null)
            {
                return false;
            }
            return ESevenDayStatus.hasGet == Cache.instance.sevenDayLogin.rewardInfo.giftInfos[param1];
        }// end function

    }
}
